{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 导入模块\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542\\t/front-api/bill/create\\t8\\t1057.31...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644\\t/front-api/bill/create\\t5\\t749.12\\t103...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742\\t/front-api/bill/create\\t5\\t845.84\\t136...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943\\t/front-api/bill/create\\t3\\t568.89\\t138...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   0\n",
       "0  2019162542\\t/front-api/bill/create\\t8\\t1057.31...\n",
       "1  162644\\t/front-api/bill/create\\t5\\t749.12\\t103...\n",
       "2  162742\\t/front-api/bill/create\\t5\\t845.84\\t136...\n",
       "3  162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...\n",
       "4  162943\\t/front-api/bill/create\\t3\\t568.89\\t138..."
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据，header列名\n",
    "df = pd.read_csv('./log.txt', header = None)\n",
    "# 默认读取前5条\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 在每一列数据中加上制表符\n",
    "df = pd.read_csv('./log.txt', header = None, sep = '\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 加上列名\n",
    "df.columns = ['id', 'api', 'count', 'res_time_sum', 'res_time_min', 'res_time_max', 'res_time_avg', 'interval', 'created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           created_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-04-05 13:43:21</th>\n",
       "      <td>5</td>\n",
       "      <td>838.05</td>\n",
       "      <td>78.45</td>\n",
       "      <td>224.57</td>\n",
       "      <td>167.0</td>\n",
       "      <td>2019-04-05 13:43:21</td>\n",
       "      <td>4</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-09 17:08:58</th>\n",
       "      <td>15</td>\n",
       "      <td>5806.07</td>\n",
       "      <td>87.42</td>\n",
       "      <td>1703.40</td>\n",
       "      <td>387.0</td>\n",
       "      <td>2019-05-09 17:08:58</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-02-03 22:44:54</th>\n",
       "      <td>13</td>\n",
       "      <td>2126.95</td>\n",
       "      <td>79.41</td>\n",
       "      <td>330.38</td>\n",
       "      <td>163.0</td>\n",
       "      <td>2019-02-03 22:44:54</td>\n",
       "      <td>6</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-28 12:46:03</th>\n",
       "      <td>2</td>\n",
       "      <td>543.49</td>\n",
       "      <td>241.36</td>\n",
       "      <td>302.13</td>\n",
       "      <td>271.0</td>\n",
       "      <td>2018-11-28 12:46:03</td>\n",
       "      <td>2</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-27 18:21:01</th>\n",
       "      <td>5</td>\n",
       "      <td>690.81</td>\n",
       "      <td>97.36</td>\n",
       "      <td>178.82</td>\n",
       "      <td>138.0</td>\n",
       "      <td>2018-11-27 18:21:01</td>\n",
       "      <td>1</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2019-04-05 13:43:21      5        838.05         78.45        224.57   \n",
       "2019-05-09 17:08:58     15       5806.07         87.42       1703.40   \n",
       "2019-02-03 22:44:54     13       2126.95         79.41        330.38   \n",
       "2018-11-28 12:46:03      2        543.49        241.36        302.13   \n",
       "2018-11-27 18:21:01      5        690.81         97.36        178.82   \n",
       "\n",
       "                     res_time_avg           created_at  weekday  weekend  \n",
       "created_at                                                                \n",
       "2019-04-05 13:43:21         167.0  2019-04-05 13:43:21        4    False  \n",
       "2019-05-09 17:08:58         387.0  2019-05-09 17:08:58        3    False  \n",
       "2019-02-03 22:44:54         163.0  2019-02-03 22:44:54        6     True  \n",
       "2018-11-28 12:46:03         271.0  2018-11-28 12:46:03        2    False  \n",
       "2018-11-27 18:21:01         138.0  2018-11-27 18:21:01        1    False  "
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机采样，多次执行，数据不一样，看大概\n",
    "df.sample(5) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据格式\n",
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                int64\n",
       "api              object\n",
       "count             int64\n",
       "res_time_sum    float64\n",
       "res_time_min    float64\n",
       "res_time_max    float64\n",
       "res_time_avg    float64\n",
       "interval          int64\n",
       "created_at       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据类型\n",
    "df.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   api           179496 non-null  object \n",
      " 2   count         179496 non-null  int64  \n",
      " 3   res_time_sum  179496 non-null  float64\n",
      " 4   res_time_min  179496 non-null  float64\n",
      " 5   res_time_max  179496 non-null  float64\n",
      " 6   res_time_avg  179496 non-null  float64\n",
      " 7   interval      179496 non-null  int64  \n",
      " 8   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "# 查看内存占用空间\n",
    "df.info()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看api的详细信息\n",
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 优化内存， 指定axis，指定删除一列\n",
    "df = df.drop('api', axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "\n",
       "   interval           created_at  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 8 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sum  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   interval      179496 non-null  int64  \n",
      " 7   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "# 查看内存占用空间\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-03-30 20:18:15\n",
       "freq                        1\n",
       "Name: created_at, dtype: object"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看 created_at这一列的信息\n",
    "df['created_at'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, count, res_time_sum, res_time_min, res_time_max, res_time_avg, interval, created_at]\n",
       "Index: []"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取某一天的数据，时间是字符串不可以使用模糊查询\n",
    "df[df.created_at == '2019-05-01']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>153089</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153090</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153091</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153092</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153093</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153968</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153969</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153970</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153971</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>153972</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              id  count  res_time_sum  res_time_min  res_time_max  \\\n",
       "153089  11406128      6       2105.08        125.74        992.46   \n",
       "153090  11406236      7       2579.11         76.55        987.47   \n",
       "153091  11406347      7       1277.79        109.65        236.73   \n",
       "153092  11406446      7       2137.20        131.55        920.52   \n",
       "153093  11406488     13       2948.70         86.42        491.31   \n",
       "...          ...    ...           ...           ...           ...   \n",
       "153968  11475363      6       1083.97         70.85        262.22   \n",
       "153969  11475483      4        840.00        117.31        382.63   \n",
       "153970  11475550      2        295.51        101.71        193.80   \n",
       "153971  11475597      2        431.99         84.43        347.56   \n",
       "153972  11475664      3        428.84        103.58        206.57   \n",
       "\n",
       "        res_time_avg  interval           created_at  \n",
       "153089         350.0        60  2019-05-01 00:00:48  \n",
       "153090         368.0        60  2019-05-01 00:01:48  \n",
       "153091         182.0        60  2019-05-01 00:02:48  \n",
       "153092         305.0        60  2019-05-01 00:03:48  \n",
       "153093         226.0        60  2019-05-01 00:04:48  \n",
       "...              ...       ...                  ...  \n",
       "153968         180.0        60  2019-05-01 23:55:49  \n",
       "153969         210.0        60  2019-05-01 23:56:49  \n",
       "153970         147.0        60  2019-05-01 23:57:49  \n",
       "153971         215.0        60  2019-05-01 23:58:49  \n",
       "153972         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 选择区间，查看数据\n",
    "df[(df.created_at >= '2019-05-01') & (df.created_at < '2019-05-02')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 当前索引\n",
    "df.index "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 将时间改为索引\n",
    "df.index = df['created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 还是字符串，需要转化为时间序列\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 8 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   count         179496 non-null  int64  \n",
      " 1   res_time_sum  179496 non-null  float64\n",
      " 2   res_time_min  179496 non-null  float64\n",
      " 3   res_time_max  179496 non-null  float64\n",
      " 4   res_time_avg  179496 non-null  float64\n",
      " 5   created_at    179496 non-null  object \n",
      " 6   weekday       179496 non-null  int64  \n",
      " 7   weekend       179496 non-null  bool   \n",
      "dtypes: bool(1), float64(4), int64(2), object(1)\n",
      "memory usage: 11.1+ MB\n"
     ]
    }
   ],
   "source": [
    "# 查看内存，及其信息\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['2018-11-01 00:00:07', '2018-11-01 00:01:07', '2018-11-01 00:02:07',\n",
       "       '2018-11-01 00:03:07', '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "       '2018-11-01 00:06:07', '2018-11-01 00:07:07', '2018-11-01 00:08:07',\n",
       "       '2018-11-01 00:09:07',\n",
       "       ...\n",
       "       '2019-05-30 23:01:21', '2019-05-30 23:02:21', '2019-05-30 23:03:21',\n",
       "       '2019-05-30 23:04:21', '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "       '2019-05-30 23:07:21', '2019-05-30 23:08:21', '2019-05-30 23:09:21',\n",
       "       '2019-05-30 23:10:21'],\n",
       "      dtype='object', name='created_at', length=179496)"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看索引\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 将时间的字符串类型转化为时间序列\n",
    "df.index = pd.to_datetime(df.created_at)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='created_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看索引\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:48</th>\n",
       "      <td>11406128</td>\n",
       "      <td>6</td>\n",
       "      <td>2105.08</td>\n",
       "      <td>125.74</td>\n",
       "      <td>992.46</td>\n",
       "      <td>350.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:00:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:01:48</th>\n",
       "      <td>11406236</td>\n",
       "      <td>7</td>\n",
       "      <td>2579.11</td>\n",
       "      <td>76.55</td>\n",
       "      <td>987.47</td>\n",
       "      <td>368.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:01:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:02:48</th>\n",
       "      <td>11406347</td>\n",
       "      <td>7</td>\n",
       "      <td>1277.79</td>\n",
       "      <td>109.65</td>\n",
       "      <td>236.73</td>\n",
       "      <td>182.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:02:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:03:48</th>\n",
       "      <td>11406446</td>\n",
       "      <td>7</td>\n",
       "      <td>2137.20</td>\n",
       "      <td>131.55</td>\n",
       "      <td>920.52</td>\n",
       "      <td>305.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:03:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:04:48</th>\n",
       "      <td>11406488</td>\n",
       "      <td>13</td>\n",
       "      <td>2948.70</td>\n",
       "      <td>86.42</td>\n",
       "      <td>491.31</td>\n",
       "      <td>226.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 00:04:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:55:49</th>\n",
       "      <td>11475363</td>\n",
       "      <td>6</td>\n",
       "      <td>1083.97</td>\n",
       "      <td>70.85</td>\n",
       "      <td>262.22</td>\n",
       "      <td>180.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:55:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:56:49</th>\n",
       "      <td>11475483</td>\n",
       "      <td>4</td>\n",
       "      <td>840.00</td>\n",
       "      <td>117.31</td>\n",
       "      <td>382.63</td>\n",
       "      <td>210.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:56:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:57:49</th>\n",
       "      <td>11475550</td>\n",
       "      <td>2</td>\n",
       "      <td>295.51</td>\n",
       "      <td>101.71</td>\n",
       "      <td>193.80</td>\n",
       "      <td>147.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:57:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:58:49</th>\n",
       "      <td>11475597</td>\n",
       "      <td>2</td>\n",
       "      <td>431.99</td>\n",
       "      <td>84.43</td>\n",
       "      <td>347.56</td>\n",
       "      <td>215.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:58:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:59:49</th>\n",
       "      <td>11475664</td>\n",
       "      <td>3</td>\n",
       "      <td>428.84</td>\n",
       "      <td>103.58</td>\n",
       "      <td>206.57</td>\n",
       "      <td>142.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-01 23:59:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>884 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sum  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:00:48  11406128      6       2105.08        125.74   \n",
       "2019-05-01 00:01:48  11406236      7       2579.11         76.55   \n",
       "2019-05-01 00:02:48  11406347      7       1277.79        109.65   \n",
       "2019-05-01 00:03:48  11406446      7       2137.20        131.55   \n",
       "2019-05-01 00:04:48  11406488     13       2948.70         86.42   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-01 23:55:49  11475363      6       1083.97         70.85   \n",
       "2019-05-01 23:56:49  11475483      4        840.00        117.31   \n",
       "2019-05-01 23:57:49  11475550      2        295.51        101.71   \n",
       "2019-05-01 23:58:49  11475597      2        431.99         84.43   \n",
       "2019-05-01 23:59:49  11475664      3        428.84        103.58   \n",
       "\n",
       "                     res_time_max  res_time_avg  interval           created_at  \n",
       "created_at                                                                      \n",
       "2019-05-01 00:00:48        992.46         350.0        60  2019-05-01 00:00:48  \n",
       "2019-05-01 00:01:48        987.47         368.0        60  2019-05-01 00:01:48  \n",
       "2019-05-01 00:02:48        236.73         182.0        60  2019-05-01 00:02:48  \n",
       "2019-05-01 00:03:48        920.52         305.0        60  2019-05-01 00:03:48  \n",
       "2019-05-01 00:04:48        491.31         226.0        60  2019-05-01 00:04:48  \n",
       "...                           ...           ...       ...                  ...  \n",
       "2019-05-01 23:55:49        262.22         180.0        60  2019-05-01 23:55:49  \n",
       "2019-05-01 23:56:49        382.63         210.0        60  2019-05-01 23:56:49  \n",
       "2019-05-01 23:57:49        193.80         147.0        60  2019-05-01 23:57:49  \n",
       "2019-05-01 23:58:49        347.56         215.0        60  2019-05-01 23:58:49  \n",
       "2019-05-01 23:59:49        206.57         142.0        60  2019-05-01 23:59:49  \n",
       "\n",
       "[884 rows x 8 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查找某一天的数据\n",
    "df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看interval这一列的数据信息\n",
    "df.interval.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60], dtype=int64)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看这一列的数据种类\n",
    "df.interval.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 删除无用数据列\n",
    "df = df.drop(['id', 'interval'], axis = 1)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 6 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   count         179496 non-null  int64  \n",
      " 1   res_time_sum  179496 non-null  float64\n",
      " 2   res_time_min  179496 non-null  float64\n",
      " 3   res_time_max  179496 non-null  float64\n",
      " 4   res_time_avg  179496 non-null  float64\n",
      " 5   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(1), object(1)\n",
      "memory usage: 9.6+ MB\n"
     ]
    }
   ],
   "source": [
    "# 查看内存\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               count   res_time_sum   res_time_min   res_time_max  \\\n",
       "count  179496.000000  179496.000000  179496.000000  179496.000000   \n",
       "mean        7.175909    1393.177832     108.419626     359.880374   \n",
       "std         4.325160    1499.486073      79.640693     638.919827   \n",
       "min         1.000000      36.550000       3.210000      36.550000   \n",
       "25%         4.000000     607.707500      83.410000     198.280000   \n",
       "50%         7.000000    1154.905000      97.120000     256.090000   \n",
       "75%        10.000000    1834.117500     116.990000     374.410000   \n",
       "max        31.000000  142650.550000   18896.640000  142468.270000   \n",
       "\n",
       "        res_time_avg  \n",
       "count  179496.000000  \n",
       "mean      187.812208  \n",
       "std       224.464813  \n",
       "min        36.000000  \n",
       "25%       144.000000  \n",
       "50%       167.000000  \n",
       "75%       202.000000  \n",
       "max     71325.000000  "
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看数据统计\n",
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n+V9t69IhYiTk4AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 初步分析count，直方图，每分钟调用次数\n",
    "df['count'].hist()  \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nZsn/BZ1e/MbkW8O7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 表示接口调用分布情况，大部分都在10次以内  ，反映出每分钟调用的次数分布情况\n",
    "\n",
    "# 增加柱子数目\n",
    "df['count'].hist(bins = 30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 切出一天的数据，绘制一天时段的接口调用情况\n",
    "df['2019-5-1']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 凌晨时间无人访问， 下午2，3点第一个访问高峰，晚上，8，9点，第二个访问高峰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 用count重采样，用一个小时进行采样，没那么多数据点了，图像比较平滑\n",
    "df2 = df['2019-5-1']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "created_at                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制1个小时的图像\n",
    "df2['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAQ/k9XjvtZSlAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 折线图和直方图， 可以看到业务的高峰时段在什么地方， 分不清具体时间，绘制柱状图\n",
    "plt.figure(figsize = (10, 3))  # 单位是英寸\n",
    "df2['count'].plot(kind = 'bar')\n",
    "plt.xticks(rotation = 60)  # 文字旋转角度\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD7CAYAAABzGc+QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAOWElEQVR4nO3df2jc933H8ed7UmJvbhhJvQgvzaJ/\nwjhVoQkTZVsM1UV0ZO1GUrqGeKMNi4jqtlEbXIZN9MdMiyCGNYOmpUZGIV5pFZJmJV3cpQvaXYLX\n0s7esubHdU0p7ubE5McyaGSGN2uf/aGTp6hK7ofuq9NH93zAcd/73Pd7n7fg/OLjz/f7uW+klJAk\n5eeXul2AJKk9BrgkZcoAl6RMGeCSlCkDXJIyZYBLUqYaBnhEXBkRlYioRcRzEfGZevvBiHgxIp6u\nPz5QfLmSpGXR6DrwiNgF7Eop/VNEXAKcBG4GbgEWUkp/UXyZkqTV+hvtkFI6A5ypb78RETXginY6\n27lzZxocHGznUKlQZ8+eZceOHd0uQ1rTyZMnX0sp/drq9oYBvlJEDALXAd8HrgfujIiPASeAz6aU\n/vPtjh8cHOTEiROtdCltiGq1yujoaLfLkNYUET9bq73pAI+IdwCPAHellH4eEV8BPg+k+vMXgNvX\nOG4CmAAYGBigWq22XLxUtIWFBb+byk7DOXCAiLgIeAz4Tkrp3jXeHwQeSykNv93njIyMJEfg2owc\ngWszi4iTKaWR1e3NXIUSwCxQWxne9ZObyz4EPNuJQiVJzWlmCuV64KPAMxHxdL3tbmBPRFzL0hTK\nKeDjhVQoSVpTM1ehHAdijbe+3flyJEnNciWmetrc3BzDw8OMjY0xPDzM3Nxct0uSmtbSZYTSVjI3\nN8fU1BSzs7MsLi7S19fH+Pg4AHv27OlydVJjjsDVs6anp5mdnaVcLtPf30+5XGZ2dpbp6elulyY1\nxQBXz6rVauzevftNbbt376ZWq3WpIqk1Brh6VqlU4vjx429qO378OKVSqUsVSa0xwNWzpqamGB8f\np1KpcP78eSqVCuPj40xNTXW7NKkpnsRUz1o+UTk5OUmtVqNUKjE9Pe0JTGWjqaX0neJSem1WLqXX\nZtb2UnpJ0uZkgKunuZBHOXMOXD3LhTzKnSNw9SwX8ih3Brh6lgt5lDsDXD3LhTzKnQGunuVCHuXO\n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\nU0nxAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有没有异常时段，访问接口过于频繁，可能就是黑客潮水攻击\n",
    "df['2019-5-1'][['count']].boxplot(showmeans = True, meanline = True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 20:47:09     21       3117.20         84.90        260.82   \n",
       "2018-11-01 21:03:09     21       3706.20         78.12        321.47   \n",
       "2018-11-01 21:13:09     24       4602.03         76.31        391.12   \n",
       "2018-11-02 21:34:11     30       4610.15         72.49        463.41   \n",
       "2018-11-03 14:20:13     21       3113.93         74.29        266.20   \n",
       "...                    ...           ...           ...           ...   \n",
       "2019-05-30 21:33:21     27       6456.64         99.65        978.91   \n",
       "2019-05-30 21:43:21     21       6371.84         65.98       1175.37   \n",
       "2019-05-30 21:47:21     21       3992.83         87.83        440.88   \n",
       "2019-05-30 21:53:21     24       8467.02        120.22       1511.17   \n",
       "2019-05-30 22:17:21     21       4926.35         85.01        826.90   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2018-11-01 20:47:09         148.0  2018-11-01 20:47:09  \n",
       "2018-11-01 21:03:09         176.0  2018-11-01 21:03:09  \n",
       "2018-11-01 21:13:09         191.0  2018-11-01 21:13:09  \n",
       "2018-11-02 21:34:11         153.0  2018-11-02 21:34:11  \n",
       "2018-11-03 14:20:13         148.0  2018-11-03 14:20:13  \n",
       "...                           ...                  ...  \n",
       "2019-05-30 21:33:21         239.0  2019-05-30 21:33:21  \n",
       "2019-05-30 21:43:21         303.0  2019-05-30 21:43:21  \n",
       "2019-05-30 21:47:21         190.0  2019-05-30 21:47:21  \n",
       "2019-05-30 21:53:21         352.0  2019-05-30 21:53:21  \n",
       "2019-05-30 22:17:21         234.0  2019-05-30 22:17:21  \n",
       "\n",
       "[746 rows x 6 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 分析次数大于20的数据\n",
    "df[df['count'] > 20]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 某一天的响应时间，平均响应时间\n",
    "df['2019-5-1']['res_time_avg'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD5CAYAAADLL+UrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAZF0lEQVR4nO3df5DU9Z3n8ecLBib8kGRFMwWDG9gT\ncwPsaY45yzK4xYQkCJfyx+1lw5y3mjgKsZTbbFlGvLmrzV1qbhNNLlfJLkbMWGqt1+rpepIzBA1M\nnzsXXTMYo0DHDQpuBig5xVNB5ef7/ujvkGZooL/zq6f9vh5VXd397u+P91jtm09/vp/v56OIwMzM\nsmFMtRMwM7OR46JvZpYhLvpmZhniom9mliEu+mZmGVJX7QRO56yzzoqZM2dWOw2zE+zfv59JkyZV\nOw2zsjZt2vRGRJzdPz7qi/7MmTPp6empdhpmJ8jn8yxcuLDaaZiVJem1cnF375iZZYiLvplZhrjo\nm5lliIu+mVmGuOibmWWIi75ZSrlcjnnz5rFo0SLmzZtHLperdkpmFRv1QzbNRpNcLkd7ezudnZ0c\nOXKEsWPH0tbWBkBra2uVszM7Pbf0zVLo6Oigs7OTlpYW6urqaGlpobOzk46OjmqnZlYRF32zFAqF\nAgsWLDgutmDBAgqFQpUyMkvHRd8shaamJrq7u4+LdXd309TUVKWMzNJx0TdLob29nba2Nrq6ujh8\n+DBdXV20tbXR3t5e7dTMKuILuWYp9F2sXblyJYVCgaamJjo6OnwR12qGTrdGrqR7gC8AeyJiXhJ7\nCPhkssnHgP8XERdImgkUgJeTz56NiK8m+8wH7gUmAD8B/iwqWKC3ubk5POGajUaecM1GM0mbIqK5\nf7ySlv69wF8B9/cFIuJLJQf+LvB2yfavRMQFZY5zJ7AceJZi0b8UWFdJ8mZmNjRO26cfEU8De8t9\nJknAnwCnvDtF0jRgSkQ8k7Tu7weuSJ+umZkNxmAv5F4CvB4RvymJzZL0S0n/W9IlSawR6C3ZpjeJ\nmZnZCBrshdxWjm/l7wZ+PyLeTPrw/6ekuYDK7HvS/nxJyyl2BdHQ0EA+nx9kmmZDb9++ff5uWs0Z\ncNGXVAf8K2B+XywiDgAHktebJL0CnEexZT+jZPcZwK6THTsi1gBroHgh1xfLbDTyhVyrRYPp3vks\n8OuIONZtI+lsSWOT138AzAZejYjdwLuSLkquA1wNPD6Ic5uZ2QCctuhLygHPAJ+U1CupLfloGSde\nwP0j4EVJvwIeAb4aEX0XgW8AfgRsA17BI3esRnmWTatlp+3eiYiyd51ExJfLxB4FHj3J9j3AvJT5\nmY0qnmXTap2nYTBLwbNsWq1z0TdLwbNsWq1z0TdLwbNsWq1z0TdLwbNsWq3zLJtmKXiWTat1p51l\ns9o8y6aNVr45y0azk82y6e4dM7MMcdE3M8sQF30zswxx0TczyxAXfTOzDHHRNzPLEBd9M7MMcdE3\nM8sQF30zswxx0TczyxAXfTOzDHHRNzPLEBd9M7MMcdE3M8uQ0xZ9SfdI2iNpc0nsG5J2SnoheSwt\n+ew2SdskvSxpcUl8vqSXks++L0lD/+eYmdmpVNLSvxe4tEz8exFxQfL4CYCkOcAyYG6yz2pJY5Pt\n7wSWA7OTR7ljmpnZMDpt0Y+Ip4G9FR7vcuDBiDgQEduBbcCFkqYBUyLimSiu2nI/cMVAkzYzs4EZ\nzHKJN0m6GugBbo6It4BG4NmSbXqT2KHkdf94WZKWU/xVQENDA/l8fhBpmg2Pffv2+btpNWegRf9O\n4JtAJM/fBa4FyvXTxyniZUXEGmANFJdL9JJ0Nhp5uUSrRQMavRMRr0fEkYg4CtwNXJh81AucU7Lp\nDGBXEp9RJm5mZiNoQEU/6aPvcyXQN7JnLbBMUr2kWRQv2D4XEbuBdyVdlIzauRp4fBB5m5nZAJy2\ne0dSDlgInCWpF/gLYKGkCyh20ewAVgBExBZJDwNbgcPAjRFxJDnUDRRHAk0A1iUPMzMbQact+hHR\nWibceYrtO4COMvEeYF6q7MzMbEj5jlwzswxx0TczyxAXfTOzDHHRNzPLEBd9M7MMcdE3M8sQF30z\nswxx0TczyxAXfTOzDHHRNzPLEBd9M7MMcdE3M8sQF30zswxx0TczyxAXfTOzDHHRNzPLEBd9M7MM\ncdE3M8sQF30zsww5bdGXdI+kPZI2l8TukPRrSS9KekzSx5L4TEnvS3ohefywZJ/5kl6StE3S9yVp\neP4kMzM7mUpa+vcCl/aLPQXMi4h/BvwDcFvJZ69ExAXJ46sl8TuB5cDs5NH/mGZmNsxOW/Qj4mlg\nb7/YkxFxOHn7LDDjVMeQNA2YEhHPREQA9wNXDCxls+rK5XLMmzePRYsWMW/ePHK5XLVTMqtY3RAc\n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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看平均时间有没有异常值\n",
    "df['2019-5-1'][['res_time_avg']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Program Files (x86)\\anconda\\lib\\site-packages\\ipykernel_launcher.py:3: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2019-05-01 00:34:48      1       1694.47       1694.47       1694.47   \n",
       "2019-05-01 14:00:49     17      19770.18        207.54       2974.52   \n",
       "2019-05-01 18:36:49      8       8799.92         96.59       3233.26   \n",
       "2019-05-01 19:09:49      6       7399.94        307.39       3153.02   \n",
       "2019-05-01 19:10:49     13      23595.60        206.20       4664.84   \n",
       "2019-05-01 20:38:49     15      16169.25        142.47       3624.26   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2019-05-01 00:34:48        1694.0  2019-05-01 00:34:48  \n",
       "2019-05-01 14:00:49        1162.0  2019-05-01 14:00:49  \n",
       "2019-05-01 18:36:49        1099.0  2019-05-01 18:36:49  \n",
       "2019-05-01 19:09:49        1233.0  2019-05-01 19:09:49  \n",
       "2019-05-01 19:10:49        1815.0  2019-05-01 19:10:49  \n",
       "2019-05-01 20:38:49        1077.0  2019-05-01 20:38:49  "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看平均时间大于 1000的，分析问题\n",
    "df2 = df['2019-5-1']\n",
    "df2[df['res_time_avg'] > 1000] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAADzCAYAAABZoxsBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAYgUlEQVR4nO3df5BV9X3/8edLBEQNKnXjlyym0Lps\n+PH9hnxxjG0wWaJfBe03avtNAjHRqduijq5Jp50U3XZi42yatvnxjbSabgKJTiJo2hqpiMEyu7F0\n/BE1BBYRFoXEBUZHaYwBC4Lv/nE/G0+W3eUu3nsuZ/f1mLmz937OOZ/7vvvHfc3ncz73HEUEZmZm\neTqu1gWYmdnI4/AxM7PcOXzMzCx3Dh8zM8udw8fMzHLn8DEzs9wdX+sCiuDUU0+Ns846q9ZlmJkV\nylNPPfVyRNT1t83hU4YzzjiDJ598stZlmJkViqSfDrTN025mZpY7h4+ZmeXO4WNmZrlz+JiZWe4c\nPmXYunUrM2fOZPny5bUuxcxsWPBqtzI0NDSwZMkSmpubAVi4cGGNKzIzKzaPfMogiblz57J06VLa\n2tpqXY6ZWdV98puP88lvPl61/j3yGYI5c+awefPmWpdhZlZ167a9XNX+PfIZgnXr1jFt2rRal2Fm\nVngOnzJEBB0dHTQ3N9Pa2lrrcszMCq8w4SNpmaSXJHVl2u6RtD49dkhan9onS3o9s+3rmWNmS9oo\naZuk2yTpSO/d3d1NS0sLbW1tXmxgZlYBRTrn823g74G7ehsi4uO9zyV9GXg1s/9zETGrn37uABYB\njwEPAvOA1YO98dSpU+nq6hpsFzMzG4LCjHwi4hFgT3/b0ujlY8CgP8SRNBEYHxGPRkRQCrLLKl2r\nmZkNrjDhcwTnAS9GRHembYqkH0v6oaTzUls90JPZpye1mZlZjoo07TaYhfz6qGc38O6IeEXSbOD7\nkmYA/Z3fif46lLSI0vQcdXV1dHZ2VrZiM7MCqNZ3X+HDR9LxwO8Ds3vbImI/sD89f0rSc8BUSiOd\nSZnDJwG7+us3ItqBdoDGxsZoamqqRvlmZsemh1YBUK3vvuEw7XYB8GxE/Go6TVKdpFHp+W8BDcDz\nEbEbeE3Suek80ZXA/Ud6A1/bzcyssgoTPpKWA48CjZJ6JDWnTQs4fKHBB4ENkn4C/BNwbUT0Lla4\nDvgmsA14jiOsdIO3ru3W2trqADIzqwCVFn3ZYBobG2PLli10dHTQ0tLiZddmNuxNXlyadtvxxUuO\nug9JT0XE2f1tK8zI51jga7uZmVWGw2cIfG03M7PKcPiUwdd2MzOrLIdPGXxtNzOzyir873zy4Gu7\nmZlVlkc+ZmaWO4ePmZnlzuFjZma5c/iYmVnuHD5mZpY7h4+ZmeXO4WNmZrlz+JiZWe4cPmZmljuH\nj5mZ5c7hY2ZmuStM+EhaJuklSV2Ztlsk7ZS0Pj0uzmy7SdI2SVskXZRpny1pY9p2W7qdtpmZ5agw\n4QN8G5jXT/tXI2JWejwIIGk6pdtrz0jH3C5pVNr/DmAR0JAe/fVpZmZVVJjwiYhHgD1l7n4psCIi\n9kfEdmAbcI6kicD4iHg0SvcPvwu4rDoVm5nZQAoTPoO4QdKGNC13WmqrB17I7NOT2urT877tZmaW\no6Lfz+cO4FYg0t8vA1cD/Z3HiUHaDyNpEaXpOerq6ujs7KxAuWZmxVKt775Ch09EvNj7XNI3gAfS\nyx7gzMyuk4BdqX1SP+399d0OtAM0NjZGU1NTxeo2MzvmPbQKgGp99xV62i2dw+l1OdC7Em4lsEDS\nWElTKC0seCIidgOvSTo3rXK7Erg/16LNzKw4Ix9Jy4Em4HRJPcDngCZJsyhNne0ArgGIiE2S7gWe\nAQ4C10fEodTVdZRWzo0DVqeHmZnlqDDhExEL+2leOsj+bUBbP+1PAjMrWJqZmQ1RoafdzMysmBw+\nZmaWO4ePmZnlzuFjZma5c/iYmVnuHD5mZpY7h4+ZmeXO4WNmZrlz+JiZWe4cPmZmljuHj5mZ5c7h\nY2ZmuXP4mJlZ7hw+ZmaWO4ePmZnlzuFjZma5c/iYmVnuChM+kpZJeklSV6bt7yQ9K2mDpPsknZra\nJ0t6XdL69Ph65pjZkjZK2ibpNkmqxecxMxvJChM+wLeBeX3aHgZmRsT/ArYCN2W2PRcRs9Lj2kz7\nHcAioCE9+vZpZmZVVpjwiYhHgD192tZExMH08jFg0mB9SJoIjI+IRyMigLuAy4703lu3bmXmzJks\nX7786Io3M7NfU5jwKcPVwOrM6ymSfizph5LOS231QE9mn57UNqiGhgaWLFlCa2urA8jMrAKOr3UB\nlSCpFTgIfDc17QbeHRGvSJoNfF/SDKC/8zsxQJ+LKE3PUVdXhyRaWlq4+eabmThxYuU/hJnZMaiz\ns7Mq/ao0+1QMkiYDD0TEzEzbVcC1wPkRsW+A4zqBPwN2Ah0R8Z7UvhBoiohrBnvfxsbG2LJlC2+8\n8QYnnHAChw4dqsTHMTM7Zk1evAqAHV+85Kj7kPRURJzd37ZCT7tJmgf8OfCRbPBIqpM0Kj3/LUoL\nC56PiN3Aa5LOTavcrgTuL/f91q1bx7Rp0yr6GczMRqLCTLtJWg40AadL6gE+R2l121jg4bRi+rG0\nsu2DwOclHQQOAddGRO9ihesorZwbR+kcUfY8Ub8igo6ODpqbm2lra6vo5zIzG4kKNe1WK5JixowZ\ntLa2snDhwlqXY2ZWddWedivMyKeWpk6dSldX15F3NDOzshT6nE9e/DsfM7PK8sinDL2/82lubgbw\n1JuZ2dvkkU8ZJDF37lyWLl3qBQdmZhXg8BmCOXPmsHnz5lqXYWZWeA6fIfDvfMzMKsPhU4bs73xa\nW1trXY6ZWeE5fMrQ3d3N/PnzueSSS7zYwMysAhw+ZWhoaGD16tWsWrXKy63NzCrA4VOG7u5uWlpa\n+MQnPuHVbmZmFeDf+ZQh+zufHTt21LocM7PC88inDL2/87nhhhsYM2ZMrcsxMys8h08Zele7LVmy\nhAMHDtS6HDOzwnP4lKH3nM8VV1zB9OnTa12OmVnhOXzK0HvO5+677/bvfMzMKsDhU4bekU9bW5t/\n52NmVgGFCR9JyyS9JKkr0zZB0sOSutPf0zLbbpK0TdIWSRdl2mdL2pi23ZZupz2o3vv5OHjMzCqj\nMOFD6dbX8/q0LQbWRkQDsDa9RtJ0YAEwIx1zu6RR6Zg7gEVAQ3r07dPMzKqsMOETEY8Ae/o0Xwrc\nmZ7fCVyWaV8REfsjYjuwDThH0kRgfEQ8GqX7h9+VOcbMzHJSmPAZwBkRsRsg/X1naq8HXsjs15Pa\n6tPzvu1mZpaj4XqFg/7O48Qg7Yd3IC2iND1HXV0dnZ2dFSvOzKwoqvXdV/TweVHSxIjYnabUXkrt\nPcCZmf0mAbtS+6R+2g8TEe1AO0BjY2M0NTVVuHQzs2PYQ6sAqNZ3X9Gn3VYCV6XnVwH3Z9oXSBor\naQqlhQVPpKm51ySdm1a5XZk5xszMclKYkY+k5UATcLqkHuBzwBeBeyU1Az8DPgoQEZsk3Qs8AxwE\nro+IQ6mr6yitnBsHrE4PMzPLUWHCJyIG+pHN+QPs3wYcdv+DiHgSmFnB0szMbIiKPu1mZmYF5PAx\nM7PcOXzMzCx3Dh8zM8udw6cMW7duZebMmSxfvrzWpZiZDQuFWe1WS73382lubgbw1a3NzN4mj3zK\nIIm5c+eydOlS2toOW71tZmZD5PAZgjlz5rB58+Zal2FmVngOnyFYt24d06ZNq3UZZmaF53M+Zdi6\ndStTpkxh7969fO1rX6t1OWZmheeRj5mZ5c7hU4apU6eyfft27rnnHi84MDOrAIfPEHjBgZlZZTh8\nhsALDszMKsPhU4aIoKOjg+bmZlpbW2tdjplZ4Tl8ytDd3U1LSwttbW2+uoGZWQV4qXUZpk6dSldX\nV63LMDMbNgo/8pHUKGl95vELSZ+RdIuknZn2izPH3CRpm6Qtki6qZf1mZiNR4cMnIrZExKyImAXM\nBvYB96XNX+3dFhEPAkiaDiwAZgDzgNsljRrsPXxVazOzyip8+PRxPvBcRPx0kH0uBVZExP6I2A5s\nA845Usd79+7l05/+tAPIzKwChlv4LACy6XCDpA2Slkk6LbXVAy9k9ulJbUd04MABPvvZz1amUjOz\nEWzYLDiQNAb4CHBTaroDuBWI9PfLwNWA+jk8+ulvEbAIoK6ujhtvvJFbb72Vnp4eOjs7K/8BzMyO\nQdX6vhs24QPMB56OiBcBev8CSPoG8EB62QOcmTluErCrb2cR0Q60p+Nj6dKlzJ8/n7vvvpumpqbq\nfAIzs2PFQ6sAqvZ9N5ym3RaSmXKTNDGz7XKgd630SmCBpLGSpgANwBNH6vzll1/2+R4zswoZFiMf\nSScC/we4JtP8t5JmUZpS29G7LSI2SboXeAY4CFwfEYfKeA8iglGjBl0YZ2ZmZRgW4RMR+4Df6NP2\nqUH2bwOGdHnqE044gVNOOYVXX3316Io0M7NfGU7TblW1e/duPvShD9W6DDOzYcHhU4aGhga+8IUv\nsGrVKiZMmFDrcszMCs/hU4bu7m4WL17MmDFjOPHEE2tdjplZ4Q2Lcz55qK+vZ+/evezcubPWpZiZ\nFZ5HPmU66aSTuPDCCxkzZkytSzEzKzyHTxkaGhq4+uqrWbFiBQcOHKh1OWZmhefwKUN3dzfLli1j\nwYIFHvmYmVWAw6dMe/fuZc2aNR75mJlVgBcclGnnzp2MHj2a+vqyLoBtZmaD8MinTBMmTOD1119n\n3759tS7FzKzwHD5lGjduHOPHj2fPnj21LsXMrPAcPmU66aSTuPjii2tdhpnZsODwKdMrr7ziWyqY\nmVWIFxyUKSKQhNTfjVDNzGwoPPIpU+85nzfffLPWpZiZFZ7Dp0y+pYKZWeUMi/CRtEPSRknrJT2Z\n2iZIelhSd/p7Wmb/myRtk7RF0kXlvMfBgwdZuXKlb6lgZlYBwyJ8krkRMSsizk6vFwNrI6IBWJte\nI2k6sACYAcwDbpd0xHtjHzpUutP2/v37q1C6mdnIMpzCp69LgTvT8zuByzLtKyJif0RsB7YB55Tb\n6d69eytapJnZSDRcwieANZKekrQotZ0REbsB0t93pvZ64IXMsT2pbVBe5WZmVjnDZan1ByJil6R3\nAg9LenaQfftLkThsp1KILcq8JqK0W2dn59ur1sysIKr1fTcswicidqW/L0m6j9I02ouSJkbEbkkT\ngZfS7j3AmZnDJwG7+umzHWgHkBS9wQPQ1NRUjY9hZnbseGgVUL3vu8JPu0k6SdI7ep8DFwJdwErg\nqrTbVcD96flKYIGksZKmAA3AE0d6n2z4mJnZ2zMcRj5nAPelczLHA3dHxEOSfgTcK6kZ+BnwUYCI\n2CTpXuAZ4CBwfUQcqk3pZmYjU+HDJyKeB97bT/srwPkDHNMGtFW5NDMzG0Dhp93MzKx4HD5mZpY7\nh4+ZmeXO4WNmZrlz+JiZWe4cPmU67jj/q8zMKsXfqGXyTeTMzCrH4TNEY8eOrXUJZmaF5/AZgtGj\nR/Otb32r1mWYmRWew6dMM2bM4M4772ThwoW1LsXMrPAKf3mdPIz5H2fR1dVV6zLMzIYNh4+ZmR3m\n/VMmVLV/T7uZmVnuHD5mZpY7h4+ZmeXO4WNmZrlz+JiZWe4KHz6SzpTUIWmzpE2SPp3ab5G0U9L6\n9Lg4c8xNkrZJ2iLpotpVb2Y2Mg2HpdYHgT+NiKclvQN4StLDadtXI+JL2Z0lTQcWADOAdwH/Jmlq\nRBzKtWozsxGs8COfiNgdEU+n568Bm4H6QQ65FFgREfsjYjuwDTin+pWamVmvwodPlqTJwPuAx1PT\nDZI2SFom6bTUVg+8kDmsh8HDyszMKmw4TLsBIOlk4J+Bz0TELyTdAdwKRPr7ZeBqQP0cHv30twhY\nBKXL63R2dlapcjOzY8/Pf/46QNW++4ZF+EgaTSl4vhsR/wIQES9mtn8DeCC97AHOzBw+CdjVt8+I\naAfaAcZObIimpqaq1G5mdiy6Y8ujADQ1/U5V+i/8tJskAUuBzRHxlUz7xMxulwO9VwZdCSyQNFbS\nFKABeCKves3MbHiMfD4AfArYKGl9arsZWChpFqUptR3ANQARsUnSvcAzlFbKXe+VbmZm+Sp8+ETE\nOvo/j/PgIMe0AW1VK8rMzAZV+Gk3MzMrHoePmZnlzuFjZma5c/iYmVnuHD5mZpa7wq92MzOzynt8\n+56q9u+Rj5mZ5c7hY2ZmuXP4mJlZ7hw+ZmaWO4ePmZnlzuFjZma5c/iYmVnu/DsfMzM7zJyzTq9q\n/w6fMkwe7wGimY0s3/mj91e1f3+rmplZ7kZs+EiaJ2mLpG2SFte6HjOzkWREho+kUcA/APOB6ZRu\nuT29tlWZmY0cIzJ8gHOAbRHxfEQcAFYAl9a4JjOzEWOkhk898ELmdU9qMzOzHIzU1W7qpy1+bQdp\nEbAIoK6ujs7OzhzKMjMbGUZq+PQAZ2ZeTwJ2ZXeIiHagHaCxsTGamppyK87MbLhTRBx5r2FG0vHA\nVuB8YCfwI+ATEbFpgP1fA7bkV6GZ2bDwmxFR19+GETnyiYiDkm4AfgCMApYNFDzJlog4O5/qzMyG\nvxE58hkqSU86fMzMKmekrnYzM7MacviUp73WBZiZDSeedjMzs9x55GNmZrlz+JiZWe5yDx9Jn5F0\nYub1g5JOzbsOMzOrnSGd85GkdMybR/2G0g7g7Ih4+Wj7MDOzYjviyEfSZEmbJd0OPA38paQfSdog\n6a/SPidJWiXpJ5K6JH18gL5uBN4FdEjqSG07JJ2e3udZSd9MfXxX0gWS/kNSt6RzMu+1LNXwY0kD\nXo069fnvkp5Oj99N7fdIujiz37cl/YGkEyXdmz7bPZIel+Tf95iZVdgRRz6SJgPPA78LjAf+H3AN\npYtzrgT+FqgD5kXEH6djTomIVwfobweZkU/va+BkYBvwPmATpUve/ARoBj4C/GFEXCbpC8AzEfGd\nNF33BPC+iNjbz3udCLwZEf8lqQFYHhFnS7ocuCwirpI0BngOmApcDzRExDWSZgLrgXMj4snB/41m\nZjYU5Z7z+WlEPAZcmB4/pjQKeg/QAGwELpD0N5LOGyh4yrA9Ijamab1NwNoopeNGYHLa50JgsaT1\nQCdwAvDuAfobDXxD0kbge5RuHAewGviwpLGUbij3SES8DsyhdG8fIqIL2HCUn8PMzAZR7rXdekcV\nAv46Iv6x7w6SZgMXA38taU1EfP4o6tmfef5m5vWbmVoF/EFElHOhzz8BXgTeSylo/wsgjYQ6gYuA\njwPLM32bmVmVDXW12w+AqyWdDCCpXtI7Jb0L2BcR3wG+BPzvQfp4DXjHUVX7Vg0tafEDkt43yL6n\nALvTSOpTlC4i2msF8IfAealPgHXAx1K/04H/+TbqNDOzAQzpqtYRsUbSNODR9N3/S+CTwFnA30l6\nE3gDuG6QbtqB1ZJ2R8Tco6j5VuD/AxtSAO0Afm+AfW8H/lnSR4EO3hrBAawB7gJWpltp9+5/p6QN\nlKYWNwBHO4VoZmYD8OV1MiSNAkanabnfBtYCUzPhZGZmFTAi7+cziBMpLQMfTen8z3UOHjOzyqva\nyEfSfcCUPs1/HhE/6G//t/leFwF/06d5e0RcXun3MjOzt8/TbmZmljtfWNTMzHLn8DEzs9w5fMzM\nLHcOH7MCkdTUe4HcIR63Q9LpR3HczUM9xqwcDh+zGpF0ND91aKJ0kd+8OHysKvw7H7MqknQl8GdA\nULpixiFgD6Wrtz+dblXyD5SuDL8P+OOIeFbS/wX+AhgDvAJcAYwDrgUOSfok0AI8C3ydty6u+5mI\n+A9Jv0HpmoV1lK78Puh1CyV9HziT0oV6vxYR7ZK+CIxLF/HdFBFXVOJ/YgZeam1WNZJmAP8CfCAi\nXpY0AfgKcDpwaUQckrQWuDYiuiW9n9KFez8s6TTg5xERkv4ImBYRfyrpFuCXEfGl9B53A7dHxDpJ\n7wZ+EBHTJN0GvBwRn5d0CfAAUDfQTRwlTYiIPZLGUbqdyYci4hVJv4yIk6v5f7KRySMfs+r5MPBP\nvV/46csd4HspeE6mNIX2vdQOMDb9nQTcI2kipdHP9gHe4wJgeub48ZLeAXwQ+P30vqsk/ecRar0x\n3ecKSiOgBkojLrOqcPiYVY8oTbf11XuB2+MojW5m9bPPEuArEbFSUhNwywDvcRzwO+l+VG+9cSmM\nyprWSP1fkPrZl243ckI5x5odLS84MKuetcDH0vkX0rTbr0TEL4Dt6arrqOS9afMpwM70/KrMYX1v\nSbIGuKH3haTeIHuE0nkiJM0HThukzlOA/0zB8x7g3My2N9K1Ds0qyuFjViURsQloA34o6SeUzvf0\ndQXQnLZvAi5N7bdQmo77dyB7nuZfgcslrZd0HnAjcLakDZKeobQgAeCvgA9KeprS3X9/NkipDwHH\np1uJ3Ao8ltnWTun2Jd8t93OblcMLDszMLHce+ZiZWe684MBshEjnntb2s+n8iPDKNsuVp93MzCx3\nnnYzM7PcOXzMzCx3Dh8zM8udw8fMzHLn8DEzs9z9N18pIAy06DhcAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEHCAYAAACumTGlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOydeXxU1fmHn3eWZLKxhh0hQRFwQa2I\nuz+pVlxxayt2UVurtmqxrVpBq6IVlxaXulFxFxXFHVncUaQuCAJh37cQlhBIIPss5/fHvZNMkpls\nzGQmyft8PsnMnHvuvd+59855z3nPOe8RYwyKoiiK4oi3AEVRFCUxUIOgKIqiAGoQFEVRFBs1CIqi\nKAqgBkFRFEWxUYOgKIqiAOCKt4DmkpmZabKysuItQ1EUpVWxcOHC3caYbuG2tVqDkJWVxYIFC+It\nQ1EUpVUhIpsjbVOXkaIoigKoQVAURVFs1CAoiqIoQCvuQwiH1+slNzeX8vLyeEtRwuDxeOjbty9u\ntzveUhRFCUObMgi5ublkZGSQlZWFiMRbjhKCMYaCggJyc3PJzs6OtxxFUcLQplxG5eXldO3aVY1B\nAiIidO3aVVtvipLAtCmDAKgxSGD03ijRZEtBKVljZ7I8ryjeUtoMbc4gKIrSPvhkxQ4A3lm4Lc5K\n2g5qEBKcxx57jNLS0qrP5557LoWFhXFUpChKW0UNQgwxxhAIBA7oGLUNwqxZs+jUqdOBSlMURalD\nmxplFMo9Hy5nRd6+qB7zsN4duPuCw+vNs2nTJs455xxGjBjBt99+y0UXXcSMGTOoqKjg4osv5p57\n7qGkpIRf/vKX5Obm4vf7ufPOO7nsssvqHOvxxx8nLy+PESNGkJmZyZw5c6pCdhQXF3P22Wdzyimn\n8N1333HUUUfxu9/9jrvvvptdu3bx2muvMXz4cEpKSvjzn//M0qVL8fl8jB8/ngsvvDCs9uXLl/O7\n3/2OyspKAoEA77zzDm63m/PPP59ly5YBMHHiRIqLixk/fjynn346xxxzDAsXLiQ/P59XXnmFBx54\ngKVLl3LZZZdx3333HfhFVxSlxWizBiGerF69mhdffJGLLrqIt99+m/nz52OMYdSoUcydO5f8/Hx6\n9+7NzJkzASgqCt8pNmbMGB555BHmzJlDZmZmne3r1q3jrbfeYvLkyRx33HG8/vrrzJs3j+nTp3P/\n/ffz/vvvM2HCBH7605/ywgsvUFhYyPDhwznzzDNJS0urc7z//ve/3HTTTfz617+msrISv9/Pzp07\n6/2uSUlJzJ07l//85z9ceOGFLFy4kC5dunDwwQfz17/+la5duzbjCiqKEg/arEFoqCYfS/r3788J\nJ5zALbfcwieffMIxxxwDQHFxMWvXruXUU0/llltu4bbbbuP888/n1FNPbdZ5srOzOfLIIwE4/PDD\nOeOMMxARjjzySDZt2gTAJ598wvTp05k4cSJgDc3dsmULQ4YMqXO8E088kQkTJpCbm8sll1zCwIED\nG9QwatQoAI488kgOP/xwevXqBcCAAQPYunWrGgRFaUW0WYMQT4K1b2MM48aN47rrrquTZ+HChcya\nNYtx48Zx1llncddddzX5PMnJyVXvHQ5H1WeHw4HP56vS8M477zBo0KAGj/erX/2K448/npkzZzJy\n5Eiee+45Dj300Br9ILXnEYSes7aeoAZFUVoH2qkcQ0aOHMkLL7xAcXExANu2bWPXrl3k5eWRmprK\nb37zG2655RZ+/PHHiMfIyMhg//79B6ThiSeewBgDwKJFiyLm3bBhAwMGDGDMmDGMGjWKnJwcevTo\nwa5duygoKKCiooIZM2Y0W4uixAKd3hI9tIUQQ8466yxWrlzJiSeeCEB6ejqvvvoq69at49Zbb8Xh\ncOB2u5k0aVLEY1x77bWcc8459OrVizlz5jRZw5133slf/vIXhg4dijGGrKysiIX6m2++yauvvorb\n7aZnz57cdddduN1u7rrrLo4//niys7MZPHhwkzUoitI6kGDNsbUxbNgwU3uBnJUrV4b1jSuJg94j\nJVo89/UG7pu5kqtPyebO8w+Lt5xWg4gsNMYMC7dNXUaKoigKoC6jhOHiiy9m48aNNdIeeughRo4c\nGfVzffzxx9x222010rKzs3nvvfeifi5FUVoPahAShJYsjEeOHBkTQ6MoSutGXUaKorRKWmn3Z0Kj\nBkFRFEUB1CAoiqIoNmoQFEVp1ei8tOihBiHBScT1EO666y4+++yzuGpQFCX6qEGIIW11PYR7772X\nM888M64aFEWJPm132OnssbBjaXSP2fNIOOfBerO05vUQXnrpJd5//338fj/Lli3j5ptvprKykilT\nppCcnMysWbPo0qULV111Feeffz4///nPycrK4sorr+TDDz/E6/Xy1ltvaXgLRWmlaAshBqxevZor\nrriChx56iG3btjF//nwWL17MwoULmTt3Lh999BG9e/dmyZIlLFu2jLPPPjvsccaMGUPv3r2ZM2dO\n2DhG69at46abbiInJ4dVq1ZVrYcwceJE7r//foCq9RB++OEH5syZw6233kpJSUlE7cuWLeP1119n\n/vz53HHHHaSmprJo0SJOPPFEXnnllbD7ZGZm8uOPP/KnP/2pKsy2oiitj7bbQmigJh9LWut6CAAj\nRowgIyODjIwMOnbsyAUXXABY6x3k5OSE3eeSSy4B4Nhjj+Xdd99t1ndRFCX+tF2DEEda63oIjT1m\npH2cTqeugaC0GAadmRZtGnQZichBIjJHRFaKyHIRuclO7yIin4rIWvu1c8g+40RknYisFpGRIenH\nishSe9vjIlYkcxFJFpE37fTvRSQr+l+15Wlt6yEoitK+aUwLwQfcbIz5UUQygIUi8ilwFfC5MeZB\nERkLjAVuE5HDgNHA4UBv4DMROdQY4wcmAdcC3wGzgLOB2cDVwF5jzCEiMhp4CKjby9rKaG3rISiK\n0r5p8noIIvIB8KT9d7oxZruI9AK+NMYMEpFxAMaYB+z8HwPjgU3AHGPMYDv9cnv/64J5jDHfiogL\n2AF0M/WI0/UQWid6j5RoMXnueu6ftYprTs3mjvN0PYTGErX1EGxXzjHA90APY8x2APu1u52tD7A1\nZLdcO62P/b52eo19jDE+oAjQ1dkVRVFakEZ3KotIOvAO8BdjzD6JvJBpuA2mnvT69qmt4VoslxP9\n+vVrSHKrQtdDUBQl3jTKIIiIG8sYvGaMCY4r3CkivUJcRrvs9FzgoJDd+wJ5dnrfMOmh++TaLqOO\nwJ7aOowxk4HJYLmMGqO9taDrIShN4dR/fUFmejLvXX9yvKUobYjGjDIS4HlgpTHmkZBN04Er7fdX\nAh+EpI+2Rw5lAwOB+bZbab+InGAf84pa+wSP9XPgi/r6DxSlvbN1TxmLtsQ3ppXS9mhMC+Fk4LfA\nUhFZbKfdDjwITBORq4EtwC8AjDHLRWQasAJrhNIN9ggjgD8BLwEpWKOLZtvpzwNTRGQdVstg9AF+\nL0VRFKWJNGgQjDHziBxh9owI+0wAJoRJXwAcESa9HNugKIqiNAb1IUQfjWWkKIqiAGoQEp5EXA9B\nUZS2iRqEGNJW10NQlESiniHwShNps8HtHpr/EKv2rIrqMQd3Gcxtw2+rN097WA/h2WefZfLkyVRW\nVnLIIYcwZcoUUlNTufDCC7n00ku54ooreOaZZ5g7dy6vvfZaVK69okRCByRGD20hxIC2vh7CJZdc\nwg8//MCSJUsYMmQIzz//PACTJ0/m3nvv5euvv+bhhx/miSeeONBLqShKC9JmWwgN1eRjSVtfD2HZ\nsmX84x//oLCwkOLi4qpJbj169ODee+9lxIgRvPfee3Tp0qVZ30tRmoK6jKJHmzUI8aStr4dw1VVX\n8f7773PUUUfx0ksv8eWXX1bts3TpUrp27UpeXh6KorQu1GUUQ9rqegj79++nV69eeL3eGn0E8+fP\nZ/bs2SxatIiJEyfWic2kKEpioy2EGNJW10P45z//yfHHH0///v058sgj2b9/PxUVFVxzzTW8+OKL\n9O7dm4cffpjf//73fPHFF9qkV2KCdiVHnyavh5Ao6HoIrRO9R9Eha+xMADY9eF6clcSP/361ngdn\nr+La0wZw+7n6TDWWqK2HoCiKorRd1GWUIOh6CIqixBs1CAmCroegKE1De6aij7qMFEVplbTO3s/E\nRg2CoiiKAqhBUBRFUWzUICiK0qrRvoTooQYhwdH1EBRFaSnUIMQQXQ9BUZTWRJsddrrj/vupWBnd\n9RCShwym5+2315unNa+HsGnTJn77299Whcd+8sknOemkk7jsssu48sorOffccwEruN0FF1zAOeec\nw1VXXcWqVasYMmQImzZt4qmnnmLYsLCTIBUlqrTSIAsJTZs1CPFk9erVvPjii1x00UW8/fbbzJ8/\nH2MMo0aNYu7cueTn59O7d29mzrTCDxQVFYU9zpgxY3jkkUeYM2cOmZmZdbavW7eOt956i8mTJ3Pc\nccdVrYcwffp07r//ft5///2q9RBeeOEFCgsLGT58OGeeeWZVRNZQunfvzqefforH42Ht2rVcfvnl\nLFiwgNGjR/Pmm29y7rnnUllZyeeff86kSZN46qmn6Ny5Mzk5OSxbtoyjjz46uhdSUZQWpc0ahIZq\n8rGkta6H4PV6ufHGG1m8eDFOp5M1a9YAcM455zBmzBgqKir46KOPOO2000hJSWHevHncdNNNABxx\nxBEMHTq0Wd9DUZqDxkyMPm3WIMST1roewqOPPkqPHj1YsmQJgUAAj8cDgMfj4fTTT+fjjz/mzTff\n5PLLL686tqLEC338oo92KseQ1rYeQlFREb169cLhcDBlyhT8fn/VttGjR/Piiy/y9ddfV4W9OOWU\n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\nACpBAOAGQdgvNQ8+OawAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2019-05-01 00:34:48\t1\t1694.47\t1694.47\t1694.47\t1694.0\t2019-05-01 00:34:48 定义为异常值\n",
    "# 查看访问时间，每分钟采样\n",
    "df['2019-5-1'][['res_time_sum',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n09YAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 20分钟采样\n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_sum',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 业务高峰时段 下午2-3点，晚上7-8点，响应时间都是上升的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nMIx6/j+wWzxCHvcxOgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 查看访问次数\n",
    "df['2019-5-1' : '2019-5-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='created_at', length=865)"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 每天的情况都差不多，下面看看周末和平常是不是一样的\n",
    "df['2019-5-2'].index.weekday # 0 代表星期一，  1 代表星期二 ，  5，6分别代表周六和周日"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 建一列数据，代表是周几\n",
    "df['weekday'] = df.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "\n",
       "                     res_time_avg           created_at  weekday  \n",
       "created_at                                                       \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     count  res_time_sum  res_time_min  res_time_max  \\\n",
       "created_at                                                             \n",
       "2018-11-01 00:00:07      8       1057.31         88.75        177.72   \n",
       "2018-11-01 00:01:07      5        749.12        103.79        240.38   \n",
       "2018-11-01 00:02:07      5        845.84        136.31        225.73   \n",
       "2018-11-01 00:03:07      9       1305.52         90.12        196.61   \n",
       "2018-11-01 00:04:07      3        568.89        138.45        232.02   \n",
       "\n",
       "                     res_time_avg           created_at  weekday  weekend  \n",
       "created_at                                                                \n",
       "2018-11-01 00:00:07         132.0  2018-11-01 00:00:07        3    False  \n",
       "2018-11-01 00:01:07         149.0  2018-11-01 00:01:07        3    False  \n",
       "2018-11-01 00:02:07         169.0  2018-11-01 00:02:07        3    False  \n",
       "2018-11-01 00:03:07         145.0  2018-11-01 00:03:07        3    False  \n",
       "2018-11-01 00:04:07         189.0  2018-11-01 00:04:07        3    False  "
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断是否是周末 ，是不是5，6\n",
    "df['weekend'] = df['weekday'].isin({5, 6})\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 对weekend 进行分组， 对count列 求平均值\n",
    "df.groupby('weekend')['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  created_at\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末调用平均次数多，7.57， \n",
    "\n",
    "\n",
    "# 周末哪个时段调用次数比较高\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 周末和非周末，具体时间对比， 绘制成图形，否则不直观\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean().plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend         False      True \n",
       "created_at                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末和非周末数据叠加\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean().unstack(level = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nD8hcr2PcZfYlAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 展示周末与非周末，时间段时间对比\n",
    "df.groupby(['weekend', df.index.hour])['count'].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
